package psd.scala.rules

import scala.collection.mutable

import org.eclipse.jdt.core.dom.Modifier

import psd.model.Bug
import psd.scala.FactDb

class ImplementationOfManyInterfaces (description: String) extends AbstractRule (description){

	 def execute(db: FactDb): mutable.ArrayBuffer[Bug]= {
    
	   	 val classDefTlist = db.classDefTList
	   	 val result = new mutable.ArrayBuffer[Bug]
   	 	 
	   	 for ( cd <- classDefTlist ) {
	   	   if (cd.interfacesName.length > 3){
		   				 val bug = new Bug
					     bug.set_lineNumber(cd.line.toInt)
					     bug.set_path(cd.path)
				    	 bug.set_ruleName(this.getClass().toString())
				    	 bug.set_description(this.description)
				    	 result+=bug
					 }
	   	 }
	   	 return result
	 }
}